RNN是一種專門設計用以解決時間序列相關的神經網路,RNN的概念在於將狀態在自身網路中無限循環傳遞,簡單來說就是RNN可以將某層計算完成的輸出,再回傳給該層自己作為輸入,因此可以接受更廣泛的時間序列結構輸入,允許訊息持續存在。
而時間序列問題可以說是當下的答案會受到過去的答案所影響,同時也會影響未來給定的答案的一種特殊情況。因此簡略來說,只要答案有所謂的時間相關性,那他就是一個時間相關問題,可以用RNN來解決。
RNN屬於遞迴神經網路,與一般神經網路有相當大的不同。一般神經網路已經儲存了相關特定問題萃取出來的資訊,答案已經在訓練過程中被固定,所以我們就算丟入新的資料進去,都一定會得到相同的答案。遞迴神經網路在這之上做出改進,每個神經元除了儲存問題的特徵之外,還有一個偷偷儲存了歷史資訊的小空間,這個歷史資訊會在同一層的每個神經元之間共享。雖然每個神經元的特徵權重依然是固定不會改變的,但是那專屬小空間並沒有被限制,儘管專屬空間不大,但每個小空間彼此相連,能夠讓神經元們透過小空間連結的儲存的資訊來得知輸入資料的變化、並調整輸出,得到一個時間相關的結果。
資料參考:
https://colah.github.io/posts/2015-08-Understanding-LSTMs/